package com.company.cloud.tag.modules.api.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.company.cloud.common.bean.BaseClientResult;
import com.company.common.server.constant.ServiceNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.company.cloud.tag.modules.api.fallback.LabelRemoteServiceFallbackFactory;
import com.company.cloud.tag.modules.api.response.Label;
import com.company.cloud.tag.modules.api.response.LabelType;


@FeignClient(contextId="tag", name = ServiceNameConstant.basic_center, fallbackFactory = LabelRemoteServiceFallbackFactory.class )
public interface LabelRemoteService {

	 /**标签*/
	@PostMapping("/remote/label/listByIdstest")
    public BaseClientResult<List<Label>> test(@RequestBody Set<String> ids);
    @RequestMapping(value = "/remote/label/listByIds1", method = RequestMethod.GET)
    public BaseClientResult<List<Label>> getLabelListByIds(@RequestParam("ids") Set<String> ids);
    @RequestMapping(value = "/remote/label/listByIds2", method = RequestMethod.GET)
    public BaseClientResult<List<Label>> getLabelListByIds(@RequestParam("ids") String ids);
    @RequestMapping(value = "/remote/label/mapByIds1", method = RequestMethod.GET)
    public BaseClientResult<Map<String,Label>> getLabelMapByIds(@RequestParam("ids") Set<String> ids);
    @RequestMapping(value = "/remote/label/mapByIds2", method = RequestMethod.GET)
    public BaseClientResult<Map<String,Label>> getLabelMapByIds(@RequestParam("ids") String ids);

    /**标签分类*/
    @RequestMapping(value = "/remote/labelType/listByIds1", method = RequestMethod.GET)
    public BaseClientResult<List<LabelType>> getLabelTypeListByIds(@RequestParam("ids") Set<String> ids);
    @RequestMapping(value = "/remote/labelType/listByIds2", method = RequestMethod.GET)
    public BaseClientResult<List<LabelType>> getLabelTypeListByIds(@RequestParam("ids") String ids);
    @RequestMapping(value = "/remote/labelType/mapByIds1", method = RequestMethod.GET)
    public BaseClientResult<Map<String,LabelType>> getLabelTypeMapByIds(@RequestParam("ids") Set<String> ids);
    @RequestMapping(value = "/remote/labelType/mapByIds2", method = RequestMethod.GET)
    public BaseClientResult<Map<String,LabelType>> getLabelTypeMapByIds(@RequestParam("ids") String ids);

}
